1. Field of Invention
The present invention relates generally to mass digital data storage systems. More particularly, the present invention relates to systems and methods for efficiently utilizing memory by simplifying the process of tracking the number of times physical memory blocks have been erased.
2. Description of the Related Art
The use of non-volatile memory systems such as flash memory storage systems is increasing due to the compact physical size of such memory systems, and the ability for non-volatile memory to be repetitively reprogrammed. The compact physical size of flash memory storage systems facilitates the use of such storage systems in devices which are becoming increasingly prevalent. Devices which use flash memory storage systems include, but are not limited to, digital cameras, digital camcorders, digital music players, handheld personal computers, and global positioning devices. The ability to repetitively reprogram non-volatile memory included in flash memory storage systems enables flash memory storage systems to be used and reused.
Since resources such as the amount of available memory space in a flash memory storage system are often limited, the efficient usage of memory within the system is critical. By way of example, within flash memory storage systems, bytes within physical blocks may be allocated to store particular information such as erase counts which effectively keep track of the number of times physical blocks have been erased, as described in co-pending U.S. patent application Ser. No. 10/281,696, which has been incorporated by reference. Reading and storing erase counts, both within individual physical blocks and within an erase count block, may sometimes consume relatively significant resources and a relatively significant amount of time. An erase count block is described in co-pending U.S. patent application Ser. No. 10/281,626, which has been incorporated by reference.
In many systems, as for example systems in which binary or MLC NAND memory may be erased up to approximately one hundred thousand times, approximately three bytes may be needed to store an erase count within an associated physical block and three bytes may be needed to store an erase count in an erase count block. The use of three bytes to store an erase count in an associated physical block and three bytes to store an erase count in an erase count block, while effective, may be a relatively complicated process in some instances, as many systems are not capable of efficiently reading three bytes. For example, some systems may not be able to read three bytes in one process or step, and may instead only enable either one, two, or four bytes to be read in one process or step. In such systems, the reading of three bytes generally entails first reading one byte and then reading the next two bytes, or reading four bytes then disregarding one byte that was read. Such reading processes may be relatively time consuming.
Therefore, what is desired is a process and a system which allows resources within a flash memory system to be efficiently used. Specifically, what is needed is a process and a system which allows the number of bits used to store erase counts to be reduced to increase the efficiency of a flash memory system.